# 导入定时任务调度库，用于设置定时执行任务
import schedule

# 导入时间模块并重命名为t，用于控制程序休眠时间
import time as t

# 导入操作系统模块，用于获取环境变量
import os

# 从dotenv库导入环境变量加载函数
from dotenv import load_dotenv

# 从spider模块导入爬虫运行函数
from spider import run_spider

# 加载.env文件中的环境变量到系统环境
load_dotenv()

# 判断是否为主程序入口
if __name__ == "__main__":
    # 从环境变量获取定时执行时间，默认为每天05:00
    schedule_time = os.getenv("SCHEDULE_TIME", "05:00")
    # 设置每天在指定时间执行爬虫任务
    schedule.every().day.at(schedule_time).do(run_spider)
    # 打印启动信息，显示定时任务的执行时间
    print(f"计划任务已启动，每天 {schedule_time} 执行爬虫。")
    # 无限循环，持续检查是否有待执行的任务
    while True:
        # 检查并执行到期的定时任务
        schedule.run_pending()
        # 程序休眠60秒，避免过度占用CPU资源
        t.sleep(60)
